
package encore.portal.container;

import java.io.IOException;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.EventRequest;
import javax.portlet.EventResponse;
import javax.portlet.Portlet;
import javax.portlet.PortletContext;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
/**
 * @author Plex
 * 过滤管理接口
 */
public interface FilterManager {
	/**
	 * 处理动作请求
	 * 
	 * @param actionRequest
	 * @param actionResponse
	 * @param portlet
	 * @param portletContext
	 * @throws PortletException
	 * @throws IOException
	 */
	public void processFilter(ActionRequest actionRequest,
			ActionResponse actionResponse, Portlet portlet,
			PortletContext portletContext) throws PortletException, IOException;

	/**
	 * 处理渲染请求
	 * 
	 * @param renderRequest
	 * @param renderResponse
	 * @param portlet
	 * @param portletContext
	 * @throws PortletException
	 * @throws IOException
	 */
	public void processFilter(RenderRequest renderRequest,
			RenderResponse renderResponse, Portlet portlet,
			PortletContext portletContext) throws PortletException, IOException;

	/**
	 * 处理资源请求
	 * 
	 * @param resourceRequest
	 * @param resourceResponse
	 * @param portlet
	 * @param portletContext
	 * @throws PortletException
	 * @throws IOException
	 */
	public void processFilter(ResourceRequest resourceRequest,
			ResourceResponse resourceResponse, Portlet portlet,
			PortletContext portletContext) throws PortletException, IOException;

	/**
	 * 处理事件请求
	 * 
	 * @param eventRequest
	 * @param eventResponse
	 * @param portlet
	 * @param portletContext
	 * @throws PortletException
	 * @throws IOException
	 */
	public void processFilter(EventRequest eventRequest,
			EventResponse eventResponse, Portlet portlet,
			PortletContext portletContext) throws PortletException, IOException;

}
